"""
日志配置管理模块
基于统一配置管理器的日志配置适配器
保持向后兼容性
"""

from ..config import get_config


class LogConfig:
    """日志配置管理类 - 适配器模式，基于统一配置管理器"""
    
    def __init__(self, config_file=None):
        """
        初始化配置
        :param config_file: 配置文件路径（为了兼容性保留，但实际使用统一配置）
        """
        self._config_manager = get_config()
        self._logging_config = self._config_manager.logging
    
    def get_log_level(self) -> str:
        """获取日志级别"""
        level = self._logging_config.level.upper()
        # 支持 DEBUG、INFO、WARN、ERROR、WARNING
        if level not in ['DEBUG', 'INFO', 'WARN', 'WARNING', 'ERROR']:
            return 'INFO'
        return level
    
    def is_file_logging_enabled(self) -> bool:
        """是否启用文件日志"""
        return self._logging_config.to_file
    
    def get_file_path(self) -> str:
        """获取日志文件路径"""
        return self._logging_config.file_path
    
    def get_file_max_size(self) -> int:
        """获取日志文件最大大小（字节）"""
        return self._config_manager.get_file_max_size_bytes()
    
    def get_file_backup_count(self) -> int:
        """获取日志文件备份数量"""
        return self._logging_config.file_backup_count
    
    def is_console_enabled(self) -> bool:
        """是否启用控制台输出"""
        return self._logging_config.console_enabled
    
    def get_format_type(self) -> str:
        """获取日志格式类型"""
        format_type = self._logging_config.format
        if format_type not in ['detailed', 'json']:
            return 'detailed'
        return format_type
    
    def is_tree_debug_enabled(self) -> bool:
        """是否启用tree调试"""
        return self._logging_config.tree_debug_enabled
    
    def get_tree_debug_max_depth(self) -> int:
        """获取tree调试最大深度"""
        return self._logging_config.tree_debug_max_depth
    
    def get_tree_debug_max_nodes(self) -> int:
        """获取tree调试最大节点数"""
        return self._logging_config.tree_debug_max_nodes
    
    def get_tree_debug_token_display_length(self) -> int:
        """获取token显示长度"""
        return self._logging_config.tree_debug_token_display_length
    
    def is_tree_debug_show_hashes(self) -> bool:
        """是否显示哈希值"""
        return self._logging_config.tree_debug_show_hashes
    
    # 为了向后兼容，保留这些方法但标记为已弃用
    def get_service_discovery_namespace(self) -> str:
        """获取服务发现的命名空间 - 已弃用，请使用 get_config().service_discovery.namespace"""
        return self._config_manager.service_discovery.namespace
    
    def get_service_discovery_label_selector(self) -> str:
        """获取服务发现的标签选择器 - 已弃用，请使用 get_config().service_discovery.label_selector"""
        return self._config_manager.service_discovery.label_selector
    
    def get_service_discovery_port_name(self) -> str:
        """获取服务发现的端口名称 - 已弃用，请使用 get_config().service_discovery.port_name"""
        return self._config_manager.service_discovery.port_name